// 组装模块并导出store的地方


// 每一个vuex应用的核心是store，store基本上就是一个容器，它包含着你的中的大部分状态（store）

// Vuex 和单纯的全局对象有以下两点不同：
// 1.Vuex的状态存储是响应式的,当Vue组件从store中读取状态的时候,若store中的状态发生改变,那么相应的组件的状态也会得到相应的更新
// 2.你不能直接改变store中的状态,改变store中的状态的唯一途径就是显示地提交 mutation,这样我们可以方便的跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好的了解我们的应用,



// State 单一状态树]
// 获取store中的数据 this.$store.state.

// Getter

// Mutation

// Action

// Module 


import vue from "vue";
import vuex from "vuex";
import state from "./state.js";
import * as getters from "./getters.js";
import mutations from "./mutations.js";
import actions from "./actions.js";

import createLogger from "vuex/dist/logger"; //修改日志

vue.use(vuex);

const debug = process.env.NODE_ENV !== 'production'; //开发环境中为true，否则为false

export default new vuex.Store({
  state,
  getters,
  actions,
  mutations,
  plugins: debug ? [createLogger()] : [] //开发环境下显示vuex的状态
})
